import request from '@/utils/request'

// API基础路径
const API_BASE = '/ai_config'

// ==================== AI任务配置 ====================

// 查询AI任务配置列表
export function getAiTaskConfigList(query) {
  return request({
    url: `${API_BASE}/task/list`,
    method: 'get',
    params: query
  })
}

// 查询AI任务配置详细
export function getAiTaskConfig(id) {
  return request({
    url: `${API_BASE}/task/${id}`,
    method: 'get'
  })
}

// 新增AI任务配置
export function addAiTaskConfig(data) {
  return request({
    url: `${API_BASE}/task`,
    method: 'post',
    data: data
  })
}

// 修改AI任务配置
export function updateAiTaskConfig(data) {
  return request({
    url: `${API_BASE}/task`,
    method: 'put',
    data: data
  })
}

// 删除AI任务配置
export function delAiTaskConfig(id) {
  return request({
    url: `${API_BASE}/task/${id}`,
    method: 'delete'
  })
}

// ==================== 统一管理API ====================

// 获取完整配置信息（包含参数和模板）
export function getCompleteConfig(configId) {
  return request({
    url: `${API_BASE}/management/complete/${configId}`,
    method: 'get'
  })
}

// 根据配置ID查询参数列表
export function getParamsByConfigId(configId) {
  return request({
    url: `${API_BASE}/management/params/${configId}`,
    method: 'get'
  })
}

// 根据配置ID查询模板列表
export function getTemplatesByConfigId(configId) {
  return request({
    url: `${API_BASE}/management/templates/${configId}`,
    method: 'get'
  })
}

// 批量保存配置（包含参数和模板）
export function batchSaveConfig(data) {
  return request({
    url: `${API_BASE}/management/batch-save`,
    method: 'post',
    data: data
  })
}

// 复制配置
export function copyAiConfig(configId, data) {
  return request({
    url: `${API_BASE}/management/copy/${configId}`,
    method: 'post',
    data: data
  })
}

// 删除参数
export function removeConfigParams(ids) {
  return request({
    url: `${API_BASE}/management/params/${ids.join(',')}`,
    method: 'delete'
  })
}

// 删除模板
export function removeConfigTemplates(ids) {
  return request({
    url: `${API_BASE}/management/templates/${ids.join(',')}`,
    method: 'delete'
  })
}

// 预览生成的提示词
export function previewConfigPrompt(configId, variables) {
  return request({
    url: `${API_BASE}/management/preview/${configId}`,
    method: 'post',
    data: variables
  })
}

// ==================== AI配置参数 ====================

// 查询AI配置参数列表
export function getAiConfigParamsList(query) {
  return request({
    url: `${API_BASE}/params/list`,
    method: 'get',
    params: query
  })
}

// 查询AI配置参数详细
export function getAiConfigParams(id) {
  return request({
    url: `${API_BASE}/params/${id}`,
    method: 'get'
  })
}

// 新增AI配置参数
export function addAiConfigParams(data) {
  return request({
    url: `${API_BASE}/params`,
    method: 'post',
    data: data
  })
}

// 修改AI配置参数
export function updateAiConfigParams(data) {
  return request({
    url: `${API_BASE}/params`,
    method: 'put',
    data: data
  })
}

// 删除AI配置参数
export function delAiConfigParams(id) {
  return request({
    url: `${API_BASE}/params/${id}`,
    method: 'delete'
  })
}

// ==================== AI提示词模板 ====================

// 查询AI提示词模板列表
export function getAiPromptTemplatesList(query) {
  return request({
    url: `${API_BASE}/prompt/list`,
    method: 'get',
    params: query
  })
}

// 查询AI提示词模板详细
export function getAiPromptTemplates(id) {
  return request({
    url: `${API_BASE}/prompt/${id}`,
    method: 'get'
  })
}

// 新增AI提示词模板
export function addAiPromptTemplates(data) {
  return request({
    url: `${API_BASE}/prompt`,
    method: 'post',
    data: data
  })
}

// 修改AI提示词模板
export function updateAiPromptTemplates(data) {
  return request({
    url: `${API_BASE}/prompt`,
    method: 'put',
    data: data
  })
}

// 删除AI提示词模板
export function delAiPromptTemplates(id) {
  return request({
    url: `${API_BASE}/prompt/${id}`,
    method: 'delete'
  })
}